home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr11 / nr3_tech.zip / CLOAKV.TXT < prev    next >
Text File  |  1993-06-18  |  17KB  |  365 lines

  1.  
  2.                       Cloaking vs. Stealth
  3.                                 
  4.                                 
  5.  
  6.  
  7. It has come to our attention that people would like an in-depth
  8. comparison of Cloaking and Stealth technologies.  The following
  9. is a discussion of the differences between Cloaking and Stealth
  10. in which we try to be objective, but of course we have a
  11. preference.  We welcome feedback.
  12.  
  13. This document discusses:
  14.  
  15.      How does Stealth Work
  16.      What is Cloaking
  17.      The Netroom Cloaked BIOSs
  18.      Q & A:
  19.           Can my programs now operate in extended memory
  20.           Is Cloaking reliable
  21.           How can the Cloaked BIOS work on all systems
  22.           Does Cloaking work with Microsoft Windows
  23.           What about programs that access the BIOS directly
  24.           Will Cloaking work with SCSI and ESDI drives
  25.      Which approach is better
  26.      Conclusion
  27.  
  28. Before one can discuss the advantages and disadvantages of each,
  29. one must understand the basic technologies behind Cloaking and
  30. Stealth.  These are two very different approaches to the problem
  31. of creating more useable memory in the region between 640K and
  32. 1Mb (we'll adopt Microsoft's name for this region, "upper
  33. memory".)
  34.  
  35. How does Stealth Work?
  36.  
  37. First we'll discuss Stealth:  Stealth has several methods of
  38. performing what is basically one task.  What Stealth in ALL its
  39. modes does is use the 386/486 (we'll use 386 to mean 386 or 486
  40. from here on, unless a distinction is necessary) mapping
  41. capability to place mappable RAM over the BIOS and redirect all
  42. BIOS functions through the Stealth upper memory resident program.
  43. When activity occurs that requires the BIOS QEMM uses the paging
  44. (mapping and paging are used interchangeabley here) capabilities
  45. of the CPU to re-map the BIOS back into the conventional memory
  46. range.  The BIOS can then process as is needed and when it is
  47. done the mapping is restored to the state it was in prior to the
  48. switch.
  49.  
  50. The three modes of Stealth dictate where the BIOS appears when it
  51. is mapped in.  In the :M and :F modes, when the BIOS is needed,
  52. it is mapped in to the EMS page frame region.  In the :P mode the
  53. BIOS is mapped in place, and the upper memory that has been
  54. placed over the BIOS is removed while the BIOS is processing.
  55.  
  56. Stealth, in other words, can be viewed as a high-speed, bank
  57. switching, mini multi tasking environment, sort of like a
  58. DesQView window that contains only the BIOS, while other programs
  59. execute in the "other" window.
  60.  
  61. There is more to Stealth than that, because several issues become
  62. important when programs need to access the BIOS.  First is what
  63. happens to data that the BIOS needs to access that resides in the
  64. region that the BIOS is mapped over.  For example if a program is
  65. trying to write data from EMS to disk it would map the data into
  66. the EMS page frame and issue a DOS call to write the data to
  67. disk.  The DOS call would eventually filter down to a BIOS disk
  68. write call which would end up in QEMM/Stealth's lap.  Stealth
  69. then needs to map the BIOS in so that it can process the call.
  70.  
  71. But in order to map the BIOS in something has to be mapped out.
  72. If Stealth is mapping the BIOS into the page frame it first must
  73. map or copy the data someplace else, so that the BIOS can have
  74. access to it.
  75.  
  76. The next issue that complicates matters is the issue of
  77. interrupts.  What happens if an interrupt occurs, while the BIOS
  78. is active that is destined for a program in the "other window?"
  79. Again, Stealth must play a mapping game, switching the BIOS in
  80. and out.
  81.  
  82. Stealth does an admirable job of keeping all this in harmony,
  83. except that to keep things simple under Windows (where things get
  84. really hairy) Stealth cannot use it's :P mode and thus requires
  85. that you use an EMS page frame.
  86.  
  87. What is Cloaking.
  88.  
  89. Cloaking is a completely different approach.  Cloaking is
  90. basically an API that allows programs that are "Cloaking aware"
  91. to load themselves into protected mode and run from there.
  92.  
  93. Before we go into more detail, a brief discussion of 386 modes is
  94. in order.  The 386 has two basic modes of operation: real and
  95. protected.  In Real mode the 386 is simply a very fast 8088 with
  96. a few extra instructions.  In Real mode the 386 can access only
  97. 1Mb + 64K of RAM and is in most ways very similar to an 8088
  98.  
  99. Protected mode is the second mode of operation of the 386.  In
  100. protected mode the 386 operates in a vastly different
  101. architecture that can access up to 4Gb of RAM and has the
  102. capability to perform hardware mapping and protection.  For the
  103. layman that means that the operating system can make programs
  104. think that any part of the systems physical memory can be mapped
  105. (appear to exist) in any part of the address range, and memory
  106. and other resources can be protected from accidental access by
  107. errant programs.
  108.  
  109. When the cpu is in protected mode DOS programs can be run,
  110. unaltered, in a special sub-mode of protected mode called virtual
  111. 86 mode (V86 mode.)  In V86 mode DOS programs can only run with
  112. some help from a protected mode program called a V86 mode control
  113. program or host.  The main difference between V86 mode and Real
  114. mode is that in V86 mode the mapping capability of the 386 is
  115. active as is the protection capabilities.  However, programs
  116. running in the V86 environment are still constrained to
  117. addressing only 1Mb.
  118.  
  119. ALL memory managers, including Netroom, QEMM and DOS's EMM386 run
  120. DOS programs in V86 mode.  This means that the system IS ALWAYS
  121. RUNNING IN PROTECTED MODE while any memory manager is active.
  122. Also, the memory manager is the V86 host program and thus is
  123. itself a full-fledged (not V86 mode) protected mode program,
  124. which in most cases runs outside the 1Mb V86 address range.
  125.  
  126. What the Cloaking API provides is an environment in which other
  127. programs can run outside the V86 memory space together with
  128. Netroom's memory manager, RAM-Man/386 (RM386).  These programs
  129. then become part of the V86 host environment under which DOS
  130. programs run in V86 mode.
  131.  
  132. For this to happen RM386 had to be modified so that other
  133. programs could gain access to certain required parts of the 386
  134. environment.  Programs running in protected mode must, at the
  135. very least, be able to access memory and perform I/O and RM386
  136. had to be somewhat re-structured to allow programs to do so.
  137. (For those with some familiarity with protected mode programming,
  138. RM386 had to allow programs to allocate selectors, issue INT
  139. instructions and access memory beyond the first megabyte.)  This
  140. is the essence of Cloaking.
  141.  
  142. The Netroom Cloaked BIOSs
  143.  
  144. What Netroom provides that is somewhat comparable to Stealth is
  145. our Cloaked BIOS.  This is comparable to Stealth only in the end
  146. result which is that more upper memory is created.  In operation
  147. the Netroom Cloaked BIOS is completely different.
  148.  
  149. The Netroom Cloaked BIOS is a complete BIOS that has been
  150. modified to run in protected mode (the exact nature of what has
  151. to be changed in a program to allow it to run in protected mode
  152. as opposed to V86 mode is beyond the scope of this paper, but the
  153. changes are not extensive and relate mainly to the use of
  154. selectors instead of segments.)
  155.  
  156. The operation of the Cloaked BIOS is fairly straightforward.
  157. When the Cloaked BIOS loads it reads the entire system
  158. configuration, queries the current BIOS and decides what kind of
  159. system is running and what options are enabled and so on.  The
  160. Cloaked BIOS then takes over, loads into protected mode using the
  161. start up parameters obtained from the system's own BIOS, and
  162. shuts down the old BIOS.
  163.  
  164. Several questions come to mind immediately.  Is this safe, aren't
  165. all BIOS's different, isn't Stealth's approach of hiding the
  166. system's own BIOS better, and so forth.  We'll deal with all that
  167. in a moment, but first we'll deal with the VGA video BIOS which
  168. is handled somewhat differently.
  169.  
  170. Netroom has two different methods for dealing with VGA BIOS.
  171. First we provide a standard VGA/SVGA BIOS which can substitute
  172. for a large variety of VGA and super VGA BIOSs in a similar
  173. manner to that described above for the System BIOS.  However we
  174. have also developed a special technique that allows Netroom to
  175. Cloak your existing VGA BIOS.  Using a special method we
  176. developed we can actually copy an existing VGA BIOS into extended
  177. memory and run it there as if it were designed to run in
  178. protected mode.
  179.  
  180. Using this technique works on most VGA BIOS's but not all.  So
  181. Netroom tests the BIOS (sort of like Stealth's test) to see if
  182. your VGA BIOS can operate safely in protected mode.
  183.  
  184. To answer those other commonly asked questions:
  185.  
  186. Q: Does Cloaking allow all programs to run in extended memory.
  187.  
  188. A: Yes and no.  Cloaking is an API that allows any program that
  189. has been DESIGNED TO USE THE CLOAKING API run in extended memory.
  190. In most cases (except for some Video BIOSs) Cloaking will not
  191. allow existing DOS drivers and programs to run in extended
  192. memory.  However, we provide in Netroom several programs already
  193. designed to run Cloaked.  These programs take the place of common
  194. utilities and perform better for less memory.  And soon you will
  195. see many other vendors supporting the Cloaking API.
  196.  
  197.  
  198. Q: Is cloaking reliable?
  199.  
  200. A: First Cloaking is absolutely reliable because the Cloaked BIOS
  201. and other utilities are designed to be Cloaked.  So that there is
  202. no question of errant instructions performing out of turn.
  203. Second, the Cloaked BIOS was licensed from Award Software, a
  204. major BIOS manufacturer whose BIOSs can be found in machines from
  205. AST to Toshiba.  So compatibility is absolute and the BIOS is
  206. thoroughly tested.
  207.  
  208.  
  209. Q: How can the Cloaked BIOS work on all systems when I know that
  210. all BIOSs have to be slightly different for each system design?
  211.  
  212. A: The Cloaked BIOS will work with most systems.  This is true
  213. because the differences between systems are almost entirely in
  214. the start up code.  This code, known as the Power On Self Test or
  215. POST routines, must be slightly different for each system because
  216. it must initialize the system's motherboard chipset.  The chipset
  217. (which is sometimes not a set but discreet electronics) controls
  218. various system specific parameters like the system board cache
  219. and shadow ram and so forth.
  220.  
  221. However once the POST routines are done, and the system starts
  222. the boot-up process then the BIOSs are all the same.  This, in
  223. fact, is a necessity because otherwise there would be no industry
  224. standards and all software would have to be machine specific.
  225.  
  226. So, our Cloaked BIOS takes over only after your own BIOS has
  227. initialized and set up the system board correctly.  Thus the
  228. Cloaked BIOS works almost universally as we provide BIOSs for all
  229. the major architectures, namely ISA, EISA, MCA and APM.
  230.  
  231.  
  232. Q: But does Cloaking work with Windows?
  233.  
  234. A: A resounding YES.  Cloaked programs run in protected mode just
  235. like Windows programs.  When Windows starts up the Cloaked
  236. programs simply and automatically become Windows Virtual Device
  237. Drivers that are designed to operate with Windows smoothly and
  238. efficiently.
  239.  
  240.  
  241. Q: What about programs that access the BIOS directly.
  242.  
  243. A: Programs that need to access the BIOS directly do so through a
  244. region of upper memory called the compatibility vectors.  The
  245. Netroom Cloaked BIOS supports the use of these vectors and
  246. maintains all the direct entry points into the BIOS and all the
  247. tables that programs expect and need to access.  This data is
  248. maintained in the top 4 (or sometimes 8) Kb of upper memory
  249. (which is where programs expect this information) so programs
  250. which access the BIOS directly, like debuggers and remote control
  251. software can continue to function.
  252.  
  253.  
  254. Q: Will cloaking work with SCSI and ESDI controllers?
  255.  
  256. A: Yes, these kinds of controllers come with their own BIOS which
  257. Netroom will not touch.  Thus your hard disk will continue to be
  258. accessed normally through the controller's own BIOS and the rest
  259. of the BIOS functions will be performed by the Netroom Cloaked
  260. BIOS.
  261.  
  262.  
  263.  
  264. Now to the heart of the matter, which approach is better?
  265.  
  266. Well, obviously we are biased, but here are some of the
  267. advantages of Cloaking.
  268.  
  269. 1. The Cloaked BIOS operates faster than the Stealthed BIOS
  270. because there is no bank switching necessary.  It takes only
  271. roughly 10 machine instructions to switch from a DOS V86 program
  272. to a protected mode program which is even fewer than is necessary
  273. to switch to a regular V86 mode BIOS, and is far fewer than is
  274. required to perform a mapping switch such as that performed by
  275. stealth.
  276.  
  277. 2. The Cloaked BIOS is safer and more stable.  The Cloaked BIOS
  278. will not exhibit any intermittent problems because all the BIOS
  279. code is designed to be Cloaked.  When testing a Stealthed BIOS
  280. QEMM cannot possibly test all of the code and so there can be
  281. some part of the BIOS which QEMM missed that does not operate
  282. when Stealthed and when one of your programs activates that part
  283. of the BIOS - crash.
  284.  
  285. 3. Cloaking is a general purpose API so that other programs can
  286. be Cloaked as well.  As is evidenced by our Cloaked disk cache,
  287. screen saver and ram drive.  And look for other vendors to
  288. support Cloaking.
  289.  
  290. 4. Cloaking can operate under Windows using standard Windows
  291. methodology so it is more stable than Stealth which has to trick
  292. Windows into performing the pseudo multi tasking operations
  293. required for the BIOS to multitask in a separate environment.
  294.  
  295. 5. Cloaking does not require the use of an EMS page frame to
  296. operate with Windows and so can provide 64K more than Stealth.
  297. This is particularly useful since all the latest software is
  298. either written for Windows, or based on DOS extenders and thus do
  299. not need access to EMS.  Stealth also requires roughly 26K of
  300. upper memory overhead vs. Cloaking's 8K
  301.  
  302.  
  303. Is there anything Stealth does better?  Well, frankly no,
  304.  
  305. 1. Stealth does allow certain special features (if any exist) of
  306. a particular BIOS to continue to be accessed where Cloaking will
  307. not.  For instance if your BIOS has a hot key to slow down the
  308. system for games you can continue to use it without re-booting.
  309. Cloaking would require that you re-boot, slow down the system in
  310. setup and then continue.
  311.  
  312. However, Stealth has no way to know if such features exist and
  313. thus cannot test to make sure that such features operate properly
  314. when stealthed.  Secondly, any such feature that involves data
  315. transfer (such as returning tables of information about the
  316. system) will invariably break.  And finally, Cloaking requires
  317. simply that you re-boot to gain access to these features -- not a
  318. bad trade-off for the performance and compatibility gains.
  319.  
  320. 2. Stealth can hide other ROMs besides the VGA and System BIOSs.
  321. Cloaking cannot do this.  If your system has a hard disk
  322. controller with its own BIOS, Cloaking will not allow you to move
  323. or hide it whereas the :M mode of Stealth will attempt to hide
  324. all BIOSs on your system.  So if you have such a BIOS and you
  325. need to use EMS you may gain more memory by using Stealth (but
  326. not if you use any of our other Cloaked utilities.)
  327.  
  328. However there is a major drawback to this feature of Stealth in
  329. that, again, Stealth is unable to thoroughly test the
  330. functionality of most such BIOSs because they are not
  331. standardized.  So the end result is that you may gain some memory
  332. (highly unlikely), but at a loss of stability and functionality.
  333.  
  334. Cloaking leaves such BIOSs alone purposefully.  We could attempt
  335. to Cloak them in a manner similar to that which we use for the
  336. Video BIOS, but we chose not to.  Our philosophy is one of
  337. caution -- unless such BIOSs can be tested thoroughly when they
  338. are relocated they should not be.
  339.  
  340. In conclusion:
  341.  
  342. Cloaking provides more memory
  343.  
  344. This is particularly true if you make use of our other Cloaked
  345. utilities instead of their DOS equivalent.  For instance the
  346. Cloaked Disk Cache can save you over 80K if you use it instead of
  347. PC-Kwik or SmartDrive.
  348.  
  349. Cloaking is faster and more reliable.
  350.  
  351. You won't see ANY performance drop.  In fact you'll be able to
  352. realize the advantages of having your BIOS take advantage of the
  353. full 32 bit mode.  And get a free BIOS upgrade at the same time.
  354.  
  355. Cloaking is an open API
  356.  
  357. We are completely open about what Cloaking is and how it works,
  358. and provide the facility for other vendors to support Cloaking.
  359.  
  360.  
  361. But why don't you be the judge of that, after all we have a 60
  362. day unconditional return policy if you buy Netroom directly from
  363. us.
  364.  
  365.